Q6 次のnumsファイルについて、Q5のような数字の並びになっている部分を、何行目に存在したかと共に出力してください。
Q6 次のnumsファイルについて、Q5のような数字の並びになっている部分を、何行目に存在したかと共に出力してください。
前述の解答を利用する
僕の解答
こっちは割とすぐに思いついた
$ for c in $(seq 4321 | tr -d 0 | grep -Ev "(.).*\1" | sort | uniq | awk -F "" '10==$1+$2+$3+$4'); do grep -no $c /ShellGeiData/vol.43/nums; done | sort
1:235
1:4123
1:541
2:3214
3:1324
3:352
3:523
4:145
5:325
前の計算結果をforで回して、ループの都度grepで結果を抽出するというアプローチ grep -nで行番号を表示
grep -oでマッチした文字列だけ表示
素直に解けたけれど、xargsを使う他の例が面白かった
$ seq 4321 | tr -d 0 | grep -Ev "(.).*\1" | sort | uniq | awk -F "" '10==$1+$2+$3+$4' | xargs -I@ grep -no @ nums | sort
1:235
1:4123
1:541
2:3214
3:1324
3:352
3:523
4:145
5:325
とてもスマート